package EX2;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/*
1、扫描指定目录，并找到名称中包含指定字符的所有普通文件（不包含目录），
  并且后续询问用户是否要删除该文件
 */
public class demo1 {
    public static void main(String[] args) {
        //接收用户输入的路径
        System.out.println("请输入要扫描的目录：");
        Scanner scanner=new Scanner(System.in);
        String rootPath=scanner.next();
        if (rootPath==null || rootPath.equals("")){
            System.out.println("目录不能为空。");
            return;
        }

        //根据目录创建File对象
        File rootDir=new File(rootPath);
        if (rootDir.isDirectory()==false){
            System.out.println("输入的不是一个目录，请检查！");
            return;
        }

        //接收查找条件
        System.out.println("请输入要找出文件名中含的字符串：");
        String token= scanner.next();
        //用于存储符合条件的文件
        List<File> fileList=new ArrayList<>();
        //开始查找
        scanDir(rootDir,token,fileList);
        //处理查找结果
        if (fileList.size()==0){
            System.out.println("没有找到符合条件的文件");
            return;
        }
        for (File file:fileList) {
            System.out.println("请问您要删除此文件"+file.getAbsolutePath()+"吗？yes or no");
            String order= scanner.next();
            if (order.equals("y")){
                file.delete();
            }
        }

    }

    private static void scanDir(File rootDir, String token, List<File> fileList) {
        File[] files=rootDir.listFiles();//返回对象数组
        if (files==null || files.length==0)
            return;
        //开始查找
        for (File file:files){
            if (file.isDirectory()){
                scanDir(file,token,fileList);
            }else {
                System.out.println(token);
                if (file.getName().contains(token)){
                    fileList.add(file.getAbsoluteFile());
                }
            }
        }
    }
}




















